package syn;

//线程不安全
public class test2 {

	public static void main(String[] args) {
		Account account=new Account(100, "总共");
		
		Drawing a=new Drawing(account, 50, "jack");
		Drawing b=new Drawing(account, 100, "ami");
		
		a.start();
		b.start();
	}
}

class Account {
	int money;
	String name;

	public Account(int money, String name) {
		this.money = money;
		this.name = name;
	}
}

class Drawing extends Thread {
	Account account;
	int drawingMoney;
	int nowMoney;

	public Drawing(Account account, int drawingMoney, String name) {
		super(name);
		this.account = account;
		this.drawingMoney = drawingMoney;
	}

	@Override
	public void run() {
		synchronized (account) {
			if (account.money - drawingMoney < 0) {
				System.out.println(Thread.currentThread().getName()+"余额不足");
				return;
			}
			
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			//卡内余额
			account.money=account.money-drawingMoney;
			//手里的前
			nowMoney=nowMoney+drawingMoney;
			
			System.out.println(account.name+"余额为"+account.money);
			System.out.println(this.getName()+"手里的钱"+nowMoney);
		}
		
		
	
	}
}
